from django.db import models


# Create your models here.


# 创建用户表
class Users(models.Model):
    # 用户id
    userId = models.CharField(max_length=255, verbose_name="用户id")
    # 用户昵称
    nickName = models.CharField(max_length=255, verbose_name="用户昵称")
    # 用户明文密码
    passStr = models.CharField(max_length=255, verbose_name="用户明文密码")
    # 用户加密密码
    password = models.CharField(max_length=255, verbose_name="用户加密密码")
    # 用户手机号
    phone = models.CharField(max_length=255, verbose_name="用户手机号")
    # 用户邮箱
    email = models.CharField(max_length=255, verbose_name="用户邮箱", default="", null=True, blank=True)
    # 用户头像
    userImg = models.CharField(max_length=255, verbose_name="用户头像",
                               default='http://chenjdd.oss-cn-chengdu.aliyuncs.com/wukongshop/headImg/%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F.jpg')
    # 余额
    balance = models.DecimalField(default=0.00, max_digits=10, decimal_places=2, verbose_name="余额")
    # 积分
    integral = models.IntegerField(default=0, verbose_name="积分")
    # 时间戳
    time_stamp = models.CharField(max_length=25, verbose_name="时间戳", default="")
    # 登录生成token
    token = models.CharField(max_length=1000, verbose_name="登录生成token", default="", null=True, blank=True)
    # 用户注册时间
    create_time = models.DateTimeField(auto_now_add=True, verbose_name="用户注册时间")
    # 用户更新时间
    update_time = models.DateTimeField(auto_now=True, verbose_name="用户更新时间")

    # 配置模型元数据
    class Meta:
        ordering = ["id"]  # 根据id进行排序
        db_table = "users"  # 创建的表名
        verbose_name = "用户表"  # 当前表的别名
        verbose_name_plural = verbose_name

    def __str__(self):
        return '%s:%s' % (self.id, self.nickName)


# 创建验证码表
class Code(models.Model):
    # 手机号
    phone = models.CharField(max_length=12, verbose_name="手机号", default='')
    # 验证码
    code = models.CharField(max_length=6, verbose_name="验证码", default='')
    # 注册验证码
    reg_code = models.CharField(max_length=6, verbose_name="注册验证码", default='')
    # 修改密码验证码
    pwd_code = models.CharField(max_length=6, verbose_name="注册验证码", default='')
    # 更换手机号验证码
    gh_phone_code = models.CharField(max_length=6, verbose_name="注册验证码", default='')
    # 有效时间
    time = models.CharField(max_length=20, verbose_name="有效时间", default='')
    # 注册有效时间
    reg_time = models.CharField(max_length=20, verbose_name="注册有效时间", default='')
    # 修改密码验证码时间
    pwd_time = models.CharField(max_length=20, verbose_name="注册有效时间", default='')
    # 更换手机号验证码时间
    gh_phone_time = models.CharField(max_length=20, verbose_name="注册有效时间", default='')

    # 配置模型元数据
    class Meta:
        ordering = ["id"]  # 根据id进行排序
        db_table = "user_code"  # 创建的表名
        verbose_name = "验证码表"  # 当前表的别名
        verbose_name_plural = verbose_name

    def __str__(self):
        return '%s:%s' % (self.id, self.phone)


# QQ邮箱验证码表
class email_code(models.Model):
    # 邮箱
    email = models.CharField(max_length=20, verbose_name="邮箱", default='')
    # 验证码
    code = models.CharField(max_length=6, verbose_name="验证码", default='')
    # 有效时间
    time = models.CharField(max_length=20, verbose_name="有效时间", default='')

    # 配置模型元数据
    class Meta:
        ordering = ["id"]  # 根据id进行排序
        db_table = "email_codes"  # 创建的表名
        verbose_name = "邮箱验证码表"  # 当前表的别名
        verbose_name_plural = verbose_name

    def __str__(self):
        return '%s:%s' % (self.id, self.email)


# 创建后台用户
class AuthUsers(models.Model):
    # 用户名
    username = models.CharField(max_length=20, verbose_name="用户名")
    # 用户昵称
    nickName = models.CharField(max_length=20, verbose_name="用户昵称")
    # 用户明文密码
    passStr = models.CharField(max_length=255, verbose_name="用户明文密码")
    # 用户加密密码
    password = models.CharField(max_length=255, verbose_name="用户加密密码")
    # 权限
    is_authority = models.CharField(max_length=10, verbose_name="权限")

    # 配置模型元数据
    class Meta:
        ordering = ["id"]  # 根据id进行排序
        db_table = "users_auth"  # 创建的表名
        verbose_name = "后台用户表"  # 当前表的别名
        verbose_name_plural = verbose_name

    def __str__(self):
        return '%s:%s' % (self.id, self.username)
